<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:fo="http://www.w3.org/1999/XSL/Format">

    <xsl:template match="/">
        <fo:root>
            <fo:layout-master-set>
                <fo:simple-page-master master-name="A4"
                    page-height="29.7cm" page-width="21cm"
                    margin-top="1cm" margin-bottom="1cm"
                    margin-left="1cm" margin-right="1cm">
                    <fo:region-body margin-top="1cm" margin-bottom="1cm" />
                    <fo:region-before extent="1cm" />
                    <fo:region-after extent="1cm" />
                </fo:simple-page-master>
            </fo:layout-master-set>

            <fo:page-sequence master-reference="A4" font-family="微软雅黑, 宋体, sans-serif">
                <fo:flow flow-name="xsl-region-body">
                    <!-- 文档标题 -->
                    <fo:block font-size="18pt" font-weight="bold" space-after="5mm"
                        font-family="微软雅黑, 宋体, sans-serif">
                        <xsl:value-of
                            select="dmodule/identAndStatusSection/dmAddress/dmAddressItems/dmTitle/techName" />
                    </fo:block>

                    <!-- 处理表格 -->
                    <xsl:apply-templates select="//table" />

                    <!-- 处理检验结论 -->
                    <xsl:apply-templates select="//complexProceduralStep[title='检验结论']" />
                </fo:flow>
            </fo:page-sequence>
        </fo:root>
    </xsl:template>

    <xsl:template match="table">
        <!-- 添加处理table/title元素，放在fo:table之前 -->
        <xsl:if test="title">
            <fo:block font-weight="bold" space-after="2mm" font-family="微软雅黑, 宋体, sans-serif"
                text-align="center">
                <xsl:value-of select="title" />
            </fo:block>
        </xsl:if>

        <fo:table border="1pt solid black" width="100%" space-after="5mm"
            font-family="微软雅黑, 宋体, sans-serif">
            <fo:table-body>
                <xsl:apply-templates select="tbody/tr" />
            </fo:table-body>
        </fo:table>
    </xsl:template>

    <xsl:template match="tr">
        <fo:table-row>
            <xsl:apply-templates select="td" />
        </fo:table-row>
    </xsl:template>

    <xsl:template match="td">
        <fo:table-cell border="1pt solid black" padding="2pt">
            <!-- 处理colspan属性 -->
            <xsl:if test="@colspan">
                <xsl:attribute name="number-columns-spanned">
                    <xsl:value-of select="@colspan" />
                </xsl:attribute>
            </xsl:if>

            <!-- 处理rowspan属性 -->
            <xsl:if test="@rowspan">
                <xsl:attribute name="number-rows-spanned">
                    <xsl:value-of select="@rowspan" />
                </xsl:attribute>
            </xsl:if>

            <fo:block font-family="微软雅黑, 宋体, sans-serif">
                <xsl:apply-templates />
            </fo:block>
        </fo:table-cell>
    </xsl:template>

    <xsl:template match="para">
        <fo:block font-family="微软雅黑, 宋体, sans-serif">
            <xsl:value-of select="." />
        </fo:block>
    </xsl:template>

    <!-- 修改处理checkbox元素的模板，添加复选框符号 -->
    <xsl:template match="checkbox">
        <fo:inline>
            <!-- 根据内容决定显示选中或未选中复选框 -->
            <xsl:choose>
                <xsl:when test="text() = '符合' or text() = '不符合'">
                    <!-- 显示选中复选框 -->
                    <xsl:text>√</xsl:text>
                </xsl:when>
                <xsl:otherwise>
                    <!-- 显示未选中复选框 -->
                    <xsl:text>×</xsl:text>
                </xsl:otherwise>
            </xsl:choose>
            <xsl:value-of select="." />
            <!-- 如果不是最后一个checkbox，添加分隔符 -->
            <!-- <xsl:if test="position() != last()">
                <xsl:text> / </xsl:text>
            </xsl:if> -->
        </fo:inline>
    </xsl:template>
    <xsl:template match="some-element">
        <fo:block>
            <fo:inline>需要内联显示的内容</fo:inline>
        </fo:block>
    </xsl:template>

    <xsl:template match="text()">
  <fo:block>
    <fo:inline>
      <xsl:value-of select="."/>
    </fo:inline>
  </fo:block>
</xsl:template>
    <!-- 添加更多模板规则处理其他元素 -->
</xsl:stylesheet>